#include "Float.h"
#include <iostream>
#include <cassert>


using namespace std;

void test1(){
    Float f1("9,9");
    cout << f1;
    Float f2("0,1");
    cout << f2;

    cout << "SUMA: " << (f1 + f2);
}

void test2(){
    Float f1("50,000");
    cout << f1;
    Float f2("-1,01");
    cout << f2;

    cout << "RESTA: " << (f2 + f1);
}

void test3(){
    Float f1("5,0");
    cout << f1;
    Float f2("-1,0");
    cout << f2;

    cout << "RESTA: " << (f1 - f2);
}

void test4(){
    Float f1("2,113");
    cout << f1;
    Float f2("-5,412");
    cout << f2;

    cout << "MULT: " << (f1*f2);

	
	cout << "aca empieza mi test" << endl;
	cout << 87 * 98.9876 << endl;

	Float a1("87,00000");
	cout << "primer numero	" << a1;
	Float a2("98,9876");
	cout << "segundo numero	" << a2;

	cout << "mult2:  ";
	cout << (a1 * a2) << endl;


	Float f("6,0");
	Float i("1,0");
	Float j("2,098");
	Float k("9,0");
	Float m("0,5");

	cout << "f*i = " <<  f * i << endl;
	cout << "j*i = " <<  j * i << endl;
	cout << "k*i = " <<  k * i << endl;
	cout << "k*f =? 54 " <<  f * i << endl;
	cout << "m*i = " <<m*i << endl;
	cout << "k*m = " << k*m << endl;
}

void test5(){
	Float acum("0,0");
	Float inc("1,0");
	Float otro("0,0");

	int i = 0;
	
	for(i; i < 10000; i++){
		otro = inc + otro;
		acum = acum + otro;
	}	

	cout << "suma acumulada hasta i = " << i << "    " << acum << endl;
}

void test6(){
	Float a1("1,0");
	Float a2("2,0");
	Float a3("3,0");

	cout << "esto tiene que dar seis  " << (a1 * a2 * a3) << endl;

	
	Float acum("1,0");
	Float inc("1,0");
	Float otro("1,0");

	int i = 0;
	
	for(i; i < 3; i++){

		acum = acum * otro;
		otro = inc + otro;
		cout << "--- acum:   " << acum << endl;
		cout << "-- otro:    " << otro << endl;
	}

	cout << "producto acum hasta i = " << i << "  " << acum << endl;
}

void test7(){
	Float f("0,5");
	Float p("0,5");
	Float acum("1,0");
//	float p = 0.5;
//	float f = 0.5;
//	float acum = 1.0;		

	for(int i = 0; i < 10; i++){
		f =  p * f;
		cout << "ress    "  << f << endl;
	}	

}

int main() {
//	test1();
//	test2();
//	test3();
//	test4();
	test4();
	return 0;
}
